package com.tree.backend.entity.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 成本项目分类表
 * </p>
 */
@Getter
@Setter
@ToString
@TableName("cost_item")
public class CostItem implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 成本项目唯一标识
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 成本项目编码
     */
    private String itemCode;

    /**
     * 成本项目名称
     */
    private String itemName;

    /**
     * 成本类型：1-人力成本 2-物料成本 3-设备成本 4-行政费用 5-差旅费用 6-营销费用 7-研发费用 8-其他费用
     */
    private Integer itemType;

    /**
     * 上级项目ID，0表示顶级项目
     */
    private Long parentId;

    /**
     * 预算周期：1-月度 2-季度 3-年度
     */
    private Integer budgetCycle;

    /**
     * 是否末级项目：0-否 1-是
     */
    private Integer isLeaf;

    /**
     * 状态：0-停用 1-启用
     */
    private Integer status;

    /**
     * 项目描述
     */
    private String description;

    /**
     * 排序号
     */
    private Integer sortOrder;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;
}
